Дано три целых
числа a, b, c. Определить, есть ли
среди них хотя бы одно чётное и хотя бы одно нечётное.
Вход. Числа a, b, c, не превышающие по модулю 10000 (числа
могут быть отрицательными).
Выход. Вывести
"YES" или "NO".
Пример входа |
Пример выхода |
3 4 5 |
YES |
условный оператор
Анализ алгоритма
Запишем два
условия. В первом проверим, есть ли среди трех чисел четное число. Во втором –
есть ли среди трех чисел нечетное число. Если оба условия истины, то выводим
"YES".
Реализация алгоритма
Читаем входные
данные. Установим переменной flag
значение 0. Если среди трех входных чисел имеется четное, то увеличим flag на 1. Далее, если среди трех чисел
имеется нечетное, то также увеличим flag
на 1.
Если одно из
входных чисел будет нечетным отрицательным, то остаток от его деления на 2
равен -1, а не 1. Поэтому проще перейти к решению задачи на неотрицательных
целых числах, взяв входные значения по модулю.
scanf("%d %d %d",&a,&b,&c);
flag
= 0;
if (a < 0) a = -a;
if (b < 0) b = -b;
if (c < 0) c = -c;
if
((a % 2 == 0) || (b % 2 == 0) || (c % 2 == 0)) flag++;
if
((a % 2 == 1) || (b % 2 == 1) || (c % 2 == 1)) flag++;
Если оба условия истины, то переменная flag примет значение 2. Выводим
результат в зависимости от значения flag.
if
(flag == 2)
printf("YES\n");
else
printf("NO\n");
Второе решение. Задачу
можно решить при помощи одного составного условия.
scanf("%d %d %d",&a,&b,&c);
if (a < 0) a = -a;
if (b < 0) b = -b;
if (c < 0) c = -c;
if
(((a % 2 == 0) || (b % 2 == 0) || (c % 2 == 0)) &&
((a % 2 == 1) || (b % 2 == 1) || (c % 2 ==
1)))
printf("YES\n");
else
printf("NO\n");
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int a = con.nextInt();
int b = con.nextInt();
int c = con.nextInt();
int flag = 0;
if (a % 2 == 0 || b % 2 == 0 || c % 2 == 0) flag++;
if (a % 2 != 0 || b % 2 != 0 || c % 2 != 0) flag++;
if (flag == 2)
System.out.println("YES");
else
System.out.println("NO");
con.close();
}
}
Python
реализация
a,b,c = map(int,input().split())
flag = 0
if ((a % 2 == 0) or (b % 2 == 0) or
(c % 2 == 0)) : flag += 1
if ((a % 2 == 1) or (b % 2 == 1) or
(c % 2 == 1)) : flag += 1
if (flag == 2) :
print("YES")
else :
print("NO")